var modifyOrAddFlag;

$(document).ready(function(){
	$('#win').window('close');
	$(".button_con a" ).removeClass("l-btn-plain");
	
	$("#addForm .easyui-validatebox").blur(function() {
		$(this).validatebox("validate");
	});
	
	//节点管理表格
		$("#datagrid").datagrid({
			url : BASE_URL_NODE_CLUSTER_CRUD + '?v=' + Math.random(),
			method:'get',
			autoRowHeight:true,
			nowrap:false,
			pageSize:20,
			singleSelect:true,
			striped:true,
			pageList:[10,20,50,100],
			columns:[[
			          	{field:'',width:10,checkbox:true},
			          	{field:'name',title:'节点名称',width:100,align:'left'},
			          	{field:'ipaddr',title:"IP地址",width:100},
			          	{field:'port',title:'端口号',width:100},
			          	{field:'remark',title:'备注',width:100,align:'left'}						
			      ]],
			pagination:true,
			onSelect:function(rowIndex,rowData){
				$("#toolbar_edit").linkbutton('enable');
				$("#toolbar_delete").linkbutton('enable');
			},
			loadFilter:function(data){
				return {
					total: data.page.totalElements || 0,
					rows: data._embedded.clusterNodes || []
				};
			},
			onBeforeLoad:function(param){
				param.page -= 1;
				param.size = param.rows;
				delete param.rows;
				param.sort = 'createTime,desc';
			}
		});
		
		$("#datagrid").datagrid('getPager').pagination({   
		    displayMsg:'当前显示从 [{from}] 到 [{to}] 共[{total}]条记录'
		}); 
});

//进入新增界面	
function onAdd(){
	$("#win").window('setTitle','ESB节点管理-新增');
	modifyOrAddFlag = true;
	$("#name").val("");
	$("#ipaddr").val("");
	$("#port").val("");
	$("#remark").val("");
	$("#addForm").form("validate");	
	$('#win').window('open');
}

//修改选中的数据
function onUpdate(){
	var row = $('#datagrid').datagrid('getSelected');
	if(row == null){
		$.messager.alert('警告',"<p>请选中要修改的记录!</p>","warning");
	}else{
		modifyOrAddFlag = false;
		$("#name").val(row.name);
		$("#ipaddr").val(row.ipaddr);
		$("#port").val(row.port);
		$("#remark").val(row.remark);
		$("#addForm").form("validate");
		$("#win").window('setTitle','ESB节点管理-修改');
		$('#win').window('open');
	}
}

//删除选中的数据
function onDel(){
	var row = $('#datagrid').datagrid('getSelected');
	if(row == null){
		$.messager.alert('警告',"<p>请选中要删除的记录!</p>","warning");
		return;
	}
	$.messager.confirm('温馨提示','你真的要删除么?',function(result){
		if (result){
			var sourceInfoJSON = { id : row.id };
			$.ajax({
				type: "get",
	    		url: BASE_URL_NODE_CLUSTER_CRUD + '/delete' + '?v=' + Math.random(),
	    		dataType:'json',
	    		data: sourceInfoJSON,
	    		async:false,
	    		contentType:"application/json",
	    		timeout:3000,
	    		success: function(result) {
					$.messager.alert('提示','<p>删除节点成功!</p>', 'info');
					setTimeout(function(){
						$("#datagrid").datagrid("reload", BASE_URL_NODE_CLUSTER_CRUD + '?v=' + Date.parse(new Date()));
					}, 100);
	    		},
				error: function() {
					$.messager.alert('错误','<p>服务异常，删除节点失败，请稍后重试或联系管理员!</p>', 'error');
				}
	    	});
		}
	});
}

//保存
function onSave(){
	$("#instance_save").linkbutton("disable");
	$("#instance_save .l-btn-text").text("提交中...");
	if($("#addForm").form("validate")){
		var newSourceInfo = $("#addForm").serializeJson();
		var checkParam = {
			name:$("#name").val(),
			ipaddr:$("#ipaddr").val()
		};
		if(modifyOrAddFlag)
		{
			$.ajax({
	    		type: "get",
	    		url: BASE_URL_NODE_CLUSTER_SEARCH + '/checkIsCanSave' + '?v=' + Math.random(),
	    		data: checkParam,
	    		contentType: "application/json",
	    		success: function(result) {
    				if(result.isCanSave == true)
    				{
    					addSource(newSourceInfo);
    				}
    				else 
    				{
    					if (result.errorCode == "DUPLICATE") 
    					{
        					$("#instance_save").linkbutton("enable");
        					$("#instance_save .l-btn-text").text("保存");
    						$.messager.alert('错误',"<p>新增失败，节点名称或者IP地址已存在！</p>","error");
    					}
    					else
    					{
    						$("#instance_save").linkbutton("enable");
    						$("#instance_save .l-btn-text").text("保存");
    						$.messager.alert('错误',"<p>新增失败！</p>","error");
    					}
    				}
					
	    		},
				error: function() {
					$("#instance_save").linkbutton("enable");
					$("#instance_save .l-btn-text").text("保存");
					$.messager.alert('错误','<p>服务异常，新增节点失败，请稍后重试或联系管理员!</p>', 'error');
				}
	    	});
			
		}
		else
		{
			var row = $('#datagrid').datagrid('getSelected');
			checkParam.originalId = row.id;
			if(row.name == checkParam.name && row.ipaddr == checkParam.ipaddr) // 未修改节点的名字或者IP地址，则可以直接修改
			{
				modifySource(newSourceInfo);
			}
			else
			{
				$.ajax({
		    		type: "get",
		    		url: BASE_URL_NODE_CLUSTER_SEARCH + '/checkIsCanSave' + '?v=' + Math.random(),
		    		data: checkParam,
		    		contentType: "application/json",
		    		success: function(result) {
		    			if(result.isCanSave == true)
	    				{
	    					modifySource(newSourceInfo);
	    				}
	    				else 
    					{
	    					if (result.errorCode == "DUPLICATE") 
							{
		    					$("#instance_save").linkbutton("enable");
		    					$("#instance_save .l-btn-text").text("保存");
								$.messager.alert('错误',"<p>修改失败，节点名称或者IP已存在！</p>","error");
							}
							else
							{
								$("#instance_save").linkbutton("enable");
								$("#instance_save .l-btn-text").text("保存");
								$.messager.alert('错误',"<p>修改失败！</p>","error");
							}
    					}
		    		},
					error: function() {
						$("#instance_save").linkbutton("enable");
						$("#instance_save .l-btn-text").text("保存");
						$.messager.alert('错误','<p>服务异常，修改节点失败，请稍后重试或联系管理员!</p>', 'error');
					}
		    	});
			}
		}
	}
    else 
    {
    	$("#instance_save").linkbutton("enable");
		$("#instance_save .l-btn-text").text("保存");
    	$(".validatebox-invalid").eq(0).focus();
    }
}

//新增节点
function addSource(newSourceInfo) {
	newSourceInfo = newSourceInfo || $("#addForm").serializeJson();
	$.ajax({
		type: "get",
		url: BASE_URL_NODE_CLUSTER_CRUD + '/save' + '?v=' + Math.random(),
		data: {data:JSON.stringify(newSourceInfo)},
		contentType: "application/json",
		success: function(result) {
			$("#instance_save").linkbutton("enable");
			$("#instance_save .l-btn-text").text("保存");
			$('#win').window('close');
			$.messager.alert('提示','<p>新增节点成功!</p>', 'info');
			setTimeout(function(){
				$("#datagrid").datagrid("reload", BASE_URL_NODE_CLUSTER_CRUD + '?v=' + Date.parse(new Date()));
			}, 100);
		},
		error: function() {
			$("#instance_save").linkbutton("enable");
			$("#instance_save .l-btn-text").text("保存");
			$.messager.alert('错误','<p>服务异常，新增节点失败，请稍后重试或联系管理员!</p>', 'error');
		}
	});
}

//修改节点信息
function modifySource(newSourceInfo) {
	newSourceInfo = newSourceInfo || $("#addForm").serializeJson();
	var row = $('#datagrid').datagrid('getSelected');
	newSourceInfo.id = row.id;
	$.ajax({
		type: "get",
		url: BASE_URL_NODE_CLUSTER_CRUD + "/update" + '?v=' + Math.random(),
		data: {data:JSON.stringify(newSourceInfo)},
		contentType: "application/json",
		success: function(result) {
			$("#instance_save").linkbutton("enable");
			$("#instance_save .l-btn-text").text("保存");
			$('#win').window('close');
			$.messager.alert('提示','<p>修改节点成功!</p>', 'info');
			setTimeout(function(){
				$("#datagrid").datagrid("reload", BASE_URL_NODE_CLUSTER_CRUD + '?v=' + Date.parse(new Date()));
			}, 100);
		},
		error: function() {
			$("#instance_save").linkbutton("enable");
			$("#instance_save .l-btn-text").text("保存");
			$.messager.alert('错误','<p>服务异常，修改节点失败，请稍后重试或联系管理员!</p>', 'error');
		}
	});
}

//取消
function rePage(){
	$('#win').window('close');
}

//刷新表单
function onReload(){
	$("#datagrid").datagrid("reload", BASE_URL_NODE_CLUSTER_CRUD + '?v=' + Math.random());
}